//T1
//#include <iostream>
//#include <string>
//using namespace std;
//
//int main() {
//    string s1, s2;
//    getline(cin, s1);
//    getline(cin, s2);
//    auto p1 = s1.begin();
//    while (p1 != s1.end())
//    {
//        auto p2 = p1;
//        for (int i = 0; i < s2.size(); i++)
//        {
//            if (*p1 == s2[i])
//            {
//                p1 = s1.erase(p1);
//            }
//        }
//        if (p1 == s1.end())
//            break;
//        if (p1 == p2)
//            p1++;
//    }
//    cout << s1;
//    return 0;
//}

//T2
//class Solution {
//public:
//    ListNode* FindFirstCommonNode(ListNode* pHead1, ListNode* pHead2) {
//        if (pHead1 == nullptr || pHead2 == nullptr)
//            return nullptr;
//        ListNode* p1 = pHead1;
//        ListNode* p2 = pHead2;
//        while (true) {
//            if (p1 == p2)
//                return p1;
//            p1 = p1->next;
//            p2 = p2->next;
//            if (p1 == nullptr && p1 != pHead1)
//                p1 = pHead2;
//            if (p2 == nullptr && p2 != pHead2)
//                p2 = pHead1;
//            if (p1 == nullptr || p2 == nullptr)
//                break;
//        }
//        return nullptr;
//    }
//};

//T3
//#include <iostream>
//#include <string>
//using namespace std;
//
//int main() {
//    int num = 0;
//    string s;
//    cin >> num >> s;
//    int cs = 0, ch = 0, cy = 0;
//    for (auto e : s) {
//        if (e == 's')
//            cs++;
//        else if (e == 'h')
//            ch++;
//        else if (e == 'y')
//            cy++;
//    }
//    cout << cs * ch * cy;
//    return 0;
//}
